---------------------------------------------------------------------------------------------------
--Dream8
---------------------------------------------------------------------------------------------------
dream8start = gfxroom {
   enter        = hideinput
  ,ontimer      = function(s)
                    if s._frames < 280 then
                      local x = 230;
                      if s._y == nil then
                        s._y = 600;
                      end
                      local gfx = s:loadgfx("ship");
                      sprite.copy(gfx, s.pic, x, s._y);
                      s._y = s._y - 1;
                      if s._frames == 1 then
                        play_music("orbit_alt");
                      end
                    elseif s._frames == 295 then
                      play_music("brass");
                    end
                  end
  ,stop         = 300
  ,next         = walk_("dream8start2")
  ,rate         = 80
  ,dispose      = nil_("_y")
}

dream8start2 = pause {
   pic          = "white"
  ,time         = 1500
  ,fading       = 80
  ,next         = chain_ {
                    light_(true),
                    walkfast2_("dream8")
                  }
}

dream8 = scene {
   checkpoint   = true
  ,enter        = chain_ {
                    music_("bam"),
                    drop_("cell12_antenna"),
                    drop_("chip")
                  }
  ,obj          = {
                     "dream8_start"
                    ,"dream8_light"
                    ,"dream8_voices"
                  }
  ,Refresh      = [[Всё вокруг меня заливает слепящий свет.]]
  ,Wait         = [[Ждать? Я не уверен, что всё ещё способен ощущать течение времени.]]
  ,Exit         = [[Куда? Я даже не знаю, где я нахожусь.]]
  ,Return       = [[Куда я могу вернуться?]]
}

dream8_start = rooms.dsc
  [[Всё вокруг меня заливает слепящий свет, я слышу чьи-то голоса, шум работающих механизмов, но всё это доносится откуда-то
    издалека и кажется слабым, приглушённым, точно окружающее меня сияние мешает звуку пробиться. Я как будто после контузии.
    Далёкие неразборчивые голоса преследуют меня, как призраки.^
    То, что я слышал в самый последний момент. Перед тем, как...]]

dream8_light = item {
   nam          = _"свет"
  ,Exam         = [[Белый свет заливает всё вокруг.]]
  ,Approach     = [[Идти к свету? Но куда? Меня окружает пустота.]]
}:like(pPhenom)

dream8_voices = item {
   _listen      = 0
  ,nam          = _"голоса"
  ,Talk         = [[Я пытаюсь произнести вслух своё имя и не могу, словно навсегда утратил дар речи.]]
  ,Listen       = choose_ {
                     ["default"] =
                        chain_ {
                          music_("voices"),
                          inc_("s._listen"),
                          [[Я прислушиваюсь, но различаю лишь какое-то блеклое эхо. Голоса людей сливаются, превращаясь в
                            надсадный плавно нарастающий гул.]]
                        }
                    ,["s._listen==1"] =
                        chain_ {
                          inc_("s._listen"),
                          [[Постепенно из этого хаоса начинают выделяться отдельные звуки. Я вдруг отчётливо слышу звуковые
                            сигналы терминалов, гул генераторов воздуха и...]]
                        }
                    ,["s._listen==2"] =
                        chain_ {
                          mute_(4000,0),
                          light_(false),
                          walk_("dream8_trans")
                        }
                  }
  ,Approach     = [[Я ничего не вижу. Меня окружает пустота.]]
  ,articles     = { 
                     ["Walk"] = "к"
                    ,["Approach"] = "к"
                  }
}:like(pBasic)

dream8_trans = pause {
   time         = 500
  ,next         = chain_ {
                    music_("horn"),
                    walk_("maindeck")
                  }
}


---------------------------------------------------------------------------------------------------
--Maindeck
---------------------------------------------------------------------------------------------------
maindeck = scene {
   obj          = {
                     "maindeck_start"
                    ,"maindeck_itself"
                    ,"maindeck_terminal"
                    ,"maindeck_walls"
                    ,"pilot1"
                    ,"navigatorguy"
                    ,"officers"
                    ,"maindeck_map"
                    ,"maindeck_goto_coridor"
                    ,"cmn_ceil"
                    ,"cmn_floor"
                    ,"ahill"
                    ,"dream8_lydia"
                  }
  ,Refresh      = redirect_("Exam", "maindeck_itself")
  ,TurnAround   = [[Нервы у всех уже на пределе. Не стоит мне просто стоять здесь посреди рубки и озираться по сторонам.]]
  ,Wait         = [[Чего мне ждать? Мы и так выбиваемся из графика.]]
  ,Exit         = chain_ {
                    playonce_("oasis",2),
                    walk_("coridor")
                  }
}

ahill = item {
   nam          = _"Ахилл"
  ,Think        = [["Ахилл" -- средних размеров судно для грузовых перевозок, похожее, как однажды пошутила Лида, на
                    огромную банку дешёвой ветчины. Впрочем, "Ахиллу" приходится летать почти к самой границе с девятыми,
                    и здесь стоят такие системы пассивной защиты, что иной военный крейсер позавидует. Но, конечно же,
                    это не "Патрокл"...^
                    Лида не хотела поступать на военную службу, а я не мог её отпустить -- ведь тогда мы вообще
                    бы больше не увиделись. Так вот я и оказался на грузоперевозках.]]
  ,articles     = {
                    ["Think"] = "об"
                  }
}

dream8_lydia = item {
   nam          = _"Лида"
  ,Think        = [[Лида должна быть в кубрике, в своей каюте. Впрочем, сейчас не до неё. У меня хватает забот.]]
  ,articles     = {
                    ["Think"] = "о"
                  }
}

maindeck_start = rooms.event
  [[-- Эй, я к тебе обращаюсь!^
    Первый пилот раздражённо трясёт меня за плечо. Я вздрагиваю и смотрю на него.^
    -- Где ты витаешь, чёрт? Нам нужно было войти в туннель ещё полчаса назад. Сходи в техничку, посмотри, что
    там творится. Мы не можем так выбиваться из графика!^^]]

maindeck_itself = item {
   nam          = _"главная палуба"
  ,dsc          = choose_ {
                    ["true"] = redirect_("Exam")
                  }
  ,Exam         = [[Я нахожусь на главной палубе "Ахилла". Это большое помещение с округлыми стенами, плавно
                    перетекающими в потолок. Стены полностью затянуты жидкокристаллической плёнкой, превращая
                    всю центральную палубу в панорамный экран. Обычно на плёнку передаётся изображение с
                    внешних камер -- непроницаемая темнота космического пространства, свет звёзд, газовые короны
                    планет, на орбиты которых мы выходим, -- и из-за этого кажется, что ты находишься внутри
                    стеклянного купола, когда лишь тонкий слой хрупкого силиката отделяет тебя от пронзительной
                    космической бездны. Впрочем, сейчас экраны отключены, и стены палубы источают мертвенный
                    белый свет.^
                    На палубе довольно людно -- как обычно и бывает перед отправкой. За терминалами нейроинтерфейса сидят
                    члены экипажа, навигатор что-то сосредоточенно рассматривает на голографической карте в центре
                    комнаты, а первый пилот нервно расхаживает у дверей.]]
  ,Walk         = [[У меня нет на это времени.]]
}:like(pRoom)

maindeck_terminal = item {
   nam          = name_ {
                     ["default"] = _"терминал нейроинтерфейса"
                    ,["Sit"] = _"терминал нейроинтерфейса"
                    ,["Lie"] = _"терминал нейроинтерфейса"
                    ,["Ascend"] = _"нейроинтерфейс"
                  }
  ,Exam         = [[Это моё рабочее место. Здесь я подключаюсь к нейроинтерфейсу. Высокое кресло -- точно такое же,
                    как перед остальными терминалами -- с развитой боковой поддержкой и большим, чуть загнутым вперёд
                    подголовником -- многие в шутку называют "пыточным стулом", но на самом деле оно довольно удобное.
                    Впрочем, когда ты подключён к нейросети, то совершенно ничего не чувствуешь.]]
  ,Plug         = choose_ {
                     ["default"] = 
                        [[Пока ещё не время подключаться к нейросети, нужно сначала разобраться с проблемами в техничке.]]
                    ,["techdeck._done and not pilot1._done"] = [[Надо бы сначала отчитаться первому пилоту.]]
                    ,["techdeck._done and pilot1._done"] =
                        chain_ {
                          hideinput,
                          walk_("dream8nextstart")
                        }
                  }
  ,TurnOn       = redirect_("Plug")
  ,Open         = [[С терминалов всё в порядке, чинить его не нужно.]]
  ,Sit          = redirect_("Plug")
  ,Ascend       = redirect_("Plug")
  ,Lie          = [[Кресло хоть и удобное, но улечься в нём не получится.]]
  ,Approach     = redirect_("Exam")
  ,Wreck        = [[Это не очень разумно.]]
  ,Crack        = [[Зачем мне это делать?]]
  ,articles     = {
                     ["Sit"] = "за"
                    ,["Plug"] = "к"
                    ,["Lie"] = "в"
                    ,["Ascend"] = "в"
                  }
}:like(pDevice)

navigatorguy = item {
   _talk        = 0
  ,nam          = _"навигатор"
  ,Exam         = [[Навигатор увлеченно изучает какую-то карту, быстро проматывая перед собой призрачные солнечные системы
                    быстрыми отточенными пассами -- точно волшебник, который по мановению рук создает целые галактики.]]
  ,Talk         = choose_ {
                     ["not techdeck._done and s._talk==0"] =
                        chain_ {
                          inc_("s._talk"),
                          [[-- Ты уже проверил загрузку маршрута? -- спрашиваю я.^
                            -- Загрузку? -- удивляется навигатор. -- Нет, а что? Сам маршрут уже давно проверен и одобрен.^
                            -- Там, судя по всему, какие-то проблемы с загрузкой, -- объясняю я.^
                            -- Ну, так сходи, проверь. Я тут занят немного.]]
                        }
                    ,["default"] = [[Он занят. Лучше ему не мешать.]]
                  }
  ,Listen       = [[Навигатор молчит.]]
  ,Approach     = redirect_("Talk")
  ,Attack       = [[Он мне не очень нравится, но всё же я стараюсь сдерживать себя.]]
  ,Think        = [[Мы уже летали несколько раз вместе, но я его почти не знаю. Впрочем, навигатор часто ведёт себя заносчиво
                    и недружелюбно. Говорили, что он раньше работал на каком-то огромном линкоре вроде "Патрокла" и, видимо,
                    считает нынешнее назначение недостойным своих талантов.]]
}:like(pHuman)

officers = item {
   nam          = _"экипаж"
  ,Exam         = [[Все погружены в работу.]]
  ,Talk         = [[Мне кажется, лучше им не мешать. У меня есть свои дела.]]
  ,Listen       = redirect_("Exam")
  ,Approach     = redirect_("Talk")
  ,Attack       = [[Мне надо взять себя в руки.]]
}:like(pHuman)

pilot1 = item {
   _talk        = 0
  ,_done        = false
  ,nam          = _"первый пилот"
  ,Exam         = [[Первый пилот действительно сильно нервничает. Обычно он ведёт себя куда спокойнее.]]
  ,Talk         = choose_ {
                     ["not techdeck._done"] =
                        [[-- Ну что, сходил? -- спрашивает первый пилот. -- Что там было?^
                          -- Нет, извини, -- говорю я. -- Пока не успел.^
                          -- Ну, и чего ты ждёшь? -- нервно взмахивает руками пилот. -- Когда нас с рейса снимут?]]
                    ,["techdeck._done and s._talk==0"] =
                        chain_ {
                          set_("s._done"),
                          inc_("s._talk"),
                          [[-- Всё в порядке, -- говорю я. -- Маршрут загружен. Всё готово.^
                            -- А что было-то? -- спрашивает пилот.^
                            -- Да какие-то проблемы при загрузке, -- отвечаю я. -- Пришлось перезагружать контур. Но
                            сейчас всё в порядке.^
                            -- Ладно, -- кивает головой первый пилот. -- Подключайся. Мы и так кучу времени потеряли.]]
                        }
                    ,["techdeck._done and s._talk==1"] =
                        [[-- Всё! -- раздраженно говорит пилот. -- Давай, подключайся! Мы не можем больше ждать.^
                          -- Да, хорошо, -- отвечаю я.]]
                  }
  ,Listen       = [[-- Я смотрю, ты не торопишься, -- кривится пилот.]]
  ,Appproach    = redirect_("Talk")
  ,Attack       = [[Я пока что не сошел с ума.]]
  ,Think        = [[Я летаю с ним с самого первого своего дня во флоте. Он старше меня всего на несколько лет,
                    однако в нашей работе даже один год может быть равнозначен десятилетию. Назначения нам дают так часто,
                    что я сам уже сбился со счёта.^
                    Отношения с первым пилотом у меня неплохие, хотя за всё время работы мы так и не подружились. Обычно он
                    довольно спокоен и рассудителен, но бывают и исключения -- как сегодня.]]
}:like(pHuman)

maindeck_map = item {
   nam          = _"голографическая карта"
  ,Exam         = [[В эту карту загружены все изученные сектора галактики. Раньше здесь стоял обычный настольный терминал,
                    а интерактивную проекцию установили только перед прошлой миссией. Пользоваться ею гораздо удобнее, хотя
                    она всё равно играет роль этакой высокотехнологической декорации. Маршруты здесь, конечно же, не
                    просчитываются.]]
  ,Approach     = [[У меня нет времени этим заниматься. К тому же с картой работает навигатор.]]
  ,Move         = [[Боюсь, передвинуть её не получится.]]
  ,Wreck        = [[Кажется, я сошёл с ума от волнения.]]
  ,TurnOn       = [[Голографическая карта сейчас работает.]]
  ,Open         = redirect_("TurnOn")
  ,TurnOff      = [[С картой работает навигатор, лучше ему не мешать.]]
  ,Close        = redirect_("TurnOff")
}:like(pDevice)

maindeck_walls = item {
   nam          = _"стены"
  ,Exam         = [[Сейчас экраны на стенах отключены и смотреть здесь решительно не на что.]]
  ,Approach     = redirect_("Exam")
  ,Move         = redirect_("Wreck", "maindeck_map")
  ,Wreck        = redirect_("Wreck", "maindeck_map")
}:like(pBuild)

maindeck_goto_coridor = item {
   nam          = _"коридор"
  ,Exit         = redirect_("Exit", "maindeck")
}:like(pLocation)


---------------------------------------------------------------------------------------------------
--Coridor
---------------------------------------------------------------------------------------------------
coridor = scene {
   obj          = {
                     "coridor_start"
                    ,"coridor_itself"
                    ,"coridor_lamps"
                    ,"coridor_walls"
                    ,"cmn_ceil"
                    ,"cmn_floor"
                    ,"coridor_goto_maindeck"
                    ,"coridor_goto_techdeck"
                    ,"coridor_goto_cubrick"
                    ,"ahill"
                    ,"dream8_lydia"
                  }
  ,TurnAround   = [[Я в коридоре один.]]
  ,Wait         = [[Вообще-то у меня есть дела.]]
}

coridor_start = rooms.dsc
  [[Я нахожусь в центральном коридоре "Ахилла".]]

coridor_itself = item {
   nam          = _"коридор"
  ,dsc          = [[Стены здесь идеально ровные и пустые, и из-за этого, если долго стоять и смотреть в конец коридора,
                    то начинает кружиться голова. Длинные лампы на потолке светятся безжизненным белым светом.^
                    Отсюда можно пройти к главной палубе, к кубрикам, или в технический отсек.]]
  ,Exam         = redirect_("dsc")
  ,Walk         = [[У меня нет на это времени.]]
}:like(pRoom)

coridor_lamps = item {
   nam          = _"лампы"
  ,Exam         = [[Когда по корабельным часам наступает ночь, их свет обычно приглушают, а в случае аварии они заливают
                    весь коридор истошно-красным светом. К счастью, такого мне видеть ещё не доводилось.]]
  ,Take         = [[Ну уж нет, это всё-таки мой корабль.]]
  ,Wreck        = redirect_("Take")
  ,Move         = [[Странные мысли приходят мне сегодня в голову.]]
  ,Approach     = [[Лампы вообще-то на потолке.]]
  ,TurnOn       = [[Свет и так горит.]]
  ,TurnOff      = [[Я не вижу выключателей на стенах. Свет управляется централизованно.]]
}:like(pBuild)

coridor_walls = item {
   nam          = _"стены"
  ,Exam         = [[Из-за равномерного белого цвета весь этот коридор кажется каким-то безжизненным и стерильным, как будто
                    корабль строили для бездушных механизмов, а не для людей, которые могут жить здесь на протяжении десятков
                    дней.]]
  ,Approach     = [[Я подхожу к одной из стен и касаюсь её рукой. Поверхность гладкая и холодная, однако я чувствую в стенах
                    слабую едва заметную вибрацию. Это пульс корабля, который отдается во всех его коридорах.]]
  ,Move         = [[Я ещё не сошел с ума.]]
  ,Wreck        = redirect_("Move")
}:like(pWall)

coridor_goto_maindeck = item {
   nam          = _"главная палуба"
  ,Enter        = walk_("maindeck")
  ,articles     = {
                     ["Enter"] = "на"
                    ,["Walk"] = "на"
                  }
}:like(pLocation)

coridor_goto_techdeck = item {
   nam          = _"технический отсек"
  ,Enter        = walk_("techdeck")
}:like(pLocation)

coridor_goto_cubrick = item {
   nam          = _"кубрик"
  ,Enter        = walk_("cubrick")
}:like(pLocation)


---------------------------------------------------------------------------------------------------
--Techdeck
---------------------------------------------------------------------------------------------------
techdeck = scene {
   _done        = false
  ,obj          = {
                     "techdeck_itself"
                    ,"techdeck_terminal"
                    ,"techdeck_b2"
                    ,"techdeck_b3"
                    ,"techdeck_walls"
                    ,"techdeck_lamps"
                    ,"techdeck_toolbox"
                    ,"techguy"
                    ,"techdeck_goto_coridor"
                    ,"hidden_keyboard"
                    ,"cmn_ceil"
                    ,"cmn_floor"
                    ,"ahill"
                    ,"dream8_lydia"
                  }
  ,TurnAround   = [[Я оборачиваюсь и смотрю на дверь в коридор. Да, на главной палубе меня ждут, надо поторопиться.]]
  ,Wait         = choose_ {
                     ["default"] = [[Вряд ли проблема сама себя решит.]]
                    ,["s._done"] = [[Нет смысла больше здесь оставаться, я должен вернуться на главную палубу.]]
                  }
  ,Exit         = redirect_("Walk", "techdeck_goto_coridor")
  ,Return       = redirect_("Walk", "techdeck_goto_coridor")
  ,Refresh      = redirect_("dsc", "techdeck_itself")
}

techdeck_itself = item {
   nam          = _"технический отсек"
  ,dsc          = [[В этом отсеке находятся основные управляющие терминалы "Ахилла". Это большая гулкая комната с высоким
                    потолком, где всё время стоит сильный сквозняк, от которого немудрено прихватить простуду. Воздух
                    здесь всегда пахнет пылью и горелой проводкой, хотя никакая техника из строя ещё не выходила. От шума
                    десятков работающих мейнфреймов закладывает в ушах. Свет в техническом отсеке мягкий и приглушенный,
                    как будто потолочные лампы работают вполсилы, а вся энергия уходит на обеспечение огромных и мощных
                    вычислительных машин.^
                    У одного из терминалов ссутулился главный инженер, с которым мы летали уже раз десять, однако я до сих пор
                    не могу запомнить его имя. Он подключил к терминалу сенсорную клавиатуру и что-то быстро набирает
                    одной рукой. У его ног стоит небольшой пластиковый ящик для инструментов.]]
  ,Exam         = redirect_("dsc")
  ,Walk         = [[Как будто мне больше нечем заняться.]]
}:like(pRoom)

techdeck_terminal = item {
   nam          = _"терминалы"
  ,Exam         = [[Я где-то слышал, что один такой терминал по вычислительной мощности превосходит все компьютеры на
                    какой-нибудь периферийной планете. Впрочем, это и не удивительно. Для рассчёта прохода через туннель
                    требуются просто чудовищные вычислительные ресурсы.]]
  ,Move         = [[Сомневаюсь, что я смогу сдвинуть хоть один из них.]]
  ,Plug         = choose_ {
                     ["default"] = [[Надо бы сначала уточнить, что произошло. Да и требуется ли вообще моя помощь.]]
                    ,["techguy._help and not techguy._help2 and not techdeck._done"] = 
                        [[Как я понял, мне нужен терминал B2, а не просто любой терминал из тех, что здесь стоят.]]
                    ,["techguy._help and techguy._help2 and not techdeck._done"] = 
                        [[Как я понял, мне нужен терминал B3, а не просто любой терминал из тех, что здесь стоят.]]
                    ,["techdeck._done"] = [[Я здесь всё уже сделал, нужно вернуться на главную палубу.]]
                  }
  ,TurnOn       = redirect_("Plug")
  ,Open         = [[Нет, ремонтов терминалов я заниматься не буду.]]
  ,Activate     = redirect_("Plug")
  ,TurnOff      = [[Не стоит отключать эти терминалы. Я пришёл сюда, чтобы помочь, а не заниматься саботажем.]]
  ,Close        = [[Отключить терминалы? Вряд ли от этого кому-то станет лучше.]]
  ,Wreck        = [[Я пришёл сюда, чтобы помочь, а не заниматься саботажем.]]
  ,Crack        = redirect_("Wreck")
  ,Approach     = [[Я подхожу к ближайшему терминалу -- это огромный металлический шкаф со стойками для вычислительных
                    модулей и широким плоским экраном.]]
  ,articles     = { 
                     ["Plug"] = "к" 
                    ,["TurnOn"] = __aux("к")
                    ,["TurnOff"] = __aux("от")
                  }
  ,withTurnOn   = true
  ,withTurnOff  = true
}:like(pDevice)

techdeck_lamps = item {
   nam          = _"лампы"
  ,Exam         = [[Свет в отсеке совсем слабый -- на остальных палубах освещение приглушают лишь когда по корабельным часам
                    наступает ночь, однако в техничке сумрачно круглые сутки. Интересно, они правда экономят энергию, или же
                    это делается по каким-то другим, неизвестным мне причинам?^
                    Впрочем, я совершенно не против. Хотя бы глаза отдохнут после яркого обжигающего света главной палубы и
                    коридоров.]]
  ,TurnOn       = [[Свет и так горит.]]
  ,Activate     = redirect_("TurnOn")
  ,TurnOff      = [[Управления светом здесь нет. К тому же в темноте работать будет неудобно.]]
  ,Wreck        = redirect_("Wreck", "techdeck_terminal")
  ,Take         = redirect_("Wreck", "techdeck_terminal")
  ,Approach     = [[Лампы вообще-то на потолке.]]
  ,articles     = { 
                     ["TurnOn"] = __aux("к")
                    ,["TurnOff"] = __aux("от")
                  }
  ,withTurnOn   = true
  ,withTurnOff  = true
}:like(pBuild)

techdeck_b2 = item {
   _keyboard    = false
  ,_reload      = false
  ,nam          = _"терминал В2"
  ,Exam         = concat_ {
                    [[Терминал В2. Один из терминалов, на которых исполняется управляющая программа навигационной системы.]],
                    if_("s._keyboard", "К терминалу подключена клавиатура."),
                    if_("not s._keyboard", "На экране терминала выводится сообщение -- не подключены органы управления."),
                    if_("s._reload", "Терминал был недавно перезагружен.")
                  }
  ,Plug         = choose_ {
                     ["default"] = [[Сейчас мне здесь ничего не нужно.]]
                    ,["s._keyboard and techguy._help2"] =
                        [[На первый взгляд терминал работает нормально, нет никаких сообщений об ошибках. Впрочем, лучше не
                          тратить на него время. Всё равно он будет выведен из контура.]]
                    ,["not s._keyboard"] =
                        [[На терминале нет никаких встроенных органов управления. Прежде чем делать что-то, неплохо бы подключить
                          к нему клавиатуру.]]
                    ,["s._keyboard and not s._reload"] =
                        [[Всё в порядке, клавиатура подключена, управление есть. Теперь терминал можно перезагрузить.]]
                    ,["s._keyboard and s._reload"] =
                        [[Терминал был успешно перезагружен. Вряд ли я смогу здесь что-то ещё сделать.]]
                  }
  ,Reboot       = choose_ {
                     ["default"] = [[Сейчас в этом нет необходимости.]]
                    ,["not s._keyboard"] = [[У терминала нет встроенных органов управления. Перезагрузить терминал просто так не получится.]]
                    ,["s._keyboard and s._reload"] = [[Я уже перезагружал этот терминал, вряд ли имеет смысл делать это ещё раз.]]
                    ,["s._keyboard and not s._reload"] =
                        chain_ {
                          set_("s._reload"),
                          playonce_("electronica", 2),
                          [[Я открываю с клавиатуры меню администратора. У меня уходит несколько минут на то, чтобы корректно завершить все
                            работающие системные сервисы. Потом я ввожу команду на перезагрузку. Экран терминала на секунду
                            мигает, и перед моими глазами начинают быстро мелькать сообщения трассировки загрузчика.]]
                        }
                  }
  ,Approach     = [[Я подхожу к терминалу В2 -- это здоровая, похожая на остов для бронированного сейфа конструкция, в которую
                    установлено более двух десятков мощных вычислительных модулей. Суперкомпьютер, которому позавидует любой
                    научно-исследовательский институт.]]
  ,TurnOff      = redirect_("TurnOff", "techdeck_terminal")
  ,TurnOn       = redirect_("Plug")
  ,Open         = redirect_("Plug")
  ,Activate     = redirect_("Plug")
  ,Close        = redirect_("TurnOff", "techdeck_terminal")
  ,Wreck        = redirect_("Wreck", "techdeck_terminal")
  ,Move         = redirect_("Move", "techdeck_terminal")
  ,articles     = { 
                     ["Plug"] = "к" 
                    ,["TurnOn"] = __aux("к")
                    ,["TurnOff"] = __aux("от")
                  }
  ,cnd          = if_("techguy._help")
  ,withTurnOn   = true
  ,withTurnOff  = true
}:like(pDevice)

techdeck_b3 = item {
   _keyboard    = false
  ,_reload      = false
  ,nam          = _"терминал В3"
  ,Exam         = concat_ {
                    [[Терминал В3. Один из терминалов, на которых исполняется управляющая программа навигационной системы.]],
                    if_("s._keyboard", "К терминалу подключена клавиатура."),
                    if_("not s._keyboard", "На экране терминала выводится сообщение -- не подключены органы управления."),
                    if_("s._reload", "Терминал был недавно перезагружен.")
                  }
  ,Plug         = choose_ {
                     ["default"] = [[Сейчас мне здесь ничего не нужно.]]
                    ,["not s._keyboard"] =
                        [[На терминале нет никаких встроенных органов управления. Прежде чем делать что-то, неплохо бы подключить
                          к нему клавиатуру.]]
                    ,["s._keyboard and not s._reload"] =
                        [[Всё в порядке, клавиатура подключена, управление есть. Теперь терминал можно перезагрузить.]]
                    ,["s._keyboard and s._reload"] =
                        [[Терминал был успешно перезагружен. Вряд ли я смогу что-то ещё сделать.]]
                  }
  ,Reboot       = choose_ {
                     ["default"] = [[Сейчас в этом нет необходимости.]]
                    ,["not s._keyboard"] = [[У терминала нет встроенных органов управления. Перезагрузить его так не получится.]]
                    ,["s._keyboard and s._reload"] = [[Я уже перезагружал этот терминал, вряд ли имеет смысл делать это ещё раз.]]
                    ,["s._keyboard and not s._reload"] =
                        chain_ {
                          set_("s._reload"),
                          [[Я открываю с клавиатуры меню администратора, завершаю работу системных сервисов и ввожу команду на
                            перезагрузку. Экран терминала на секунду мигает, а потом перед моими глазами начинают быстро мелькать
                            сообщения трассировки загрузчика.]]
                        }
                  }
  ,Approach     = [[Я останавливаюсь рядом с терминалом В3. Он представляет собой практически полную копию своего соседа, отличается
                    лишь номер, который светится на маленьком экране сверху.]]
  ,TurnOff      = redirect_("TurnOff", "techdeck_terminal")
  ,TurnOn       = redirect_("Plug")
  ,Open         = redirect_("Plug")
  ,Activate     = redirect_("Plug")
  ,Close        = redirect_("TurnOff", "techdeck_terminal")
  ,Wreck        = redirect_("Wreck", "techdeck_terminal")
  ,Move         = redirect_("Move", "techdeck_terminal")
  ,articles     = { 
                     ["Plug"] = "к" 
                    ,["TurnOn"] = __aux("к")
                    ,["TurnOff"] = __aux("от")
                  }
  ,cnd          = if_("techguy._help2")
  ,withTurnOn   = true
  ,withTurnOff  = true
}:like(pDevice)

techdeck_walls = item {
   nam          = _"стены"
  ,multiple     = true
  ,Exam         = [[Вдоль всех стен в отсеке тянутся высокие мощные терминалы.]]
  ,Approach     = redirect_("Exam")
  ,Wreck        = [[Да уж, такое мне ещё в голову не приходило.]]
  ,Move         = [[Сомневаюсь, что у меня что-то получится.]]
  ,withTurnOn   = true
  ,withTurnOff  = true  
  ,articles     = { 
                     ["TurnOn"] = __aux("к")
                    ,["TurnOff"] = __aux("от")
                  }
}:like(pWall)

techdeck_toolbox = item {
   _exam        = false
  ,nam          = _"ящик с инструментами"
  ,Exam         = choose_ {
                     ["default"] =
                        chain_ {
                          set_("s._exam"),
                          [[Ящик с инструментами наполовину пуст. В нём лежат лишь старый затертый планшет, несколько электрических
                            отвёрток и беспроводная сенсорная клавиатура.]]
                        }
                    ,["have(keyboard) and not techdeck._done"] = [[В этом ящике больше нет ничего, что мне сейчас было бы нужно.]]
                    ,["techdeck._done"] = [[Больше моя помощь не требуется, так что и инструменты мне тоже не пригодятся.]]
                  }
  ,Open         = redirect_("Exam")
  ,Close        = [[Ящик закрыт.]]
  ,Take         = [[Во-первых, этот ящик не мой. А во-вторых, у меня совершенно нет желания таскать его с собой.]]
  ,Move         = [[Зачем? Ящик стоит там, где инженер его поставил. Явно он ему ещё потребуется.]]
  ,Wreck        = redirect_("Wreck", "techdeck_terminal")
  ,Approach     = redirect_("Exam")
  ,articles     = {
                     ["Put"] = "в"
                    ,["PutIn"] = "в"
                    ,["PutAway"] = "в"
                    ,["Throw"] = "в"
                    ,["Fetch"] = "в"
                    ,["TakeFrom"] = "из"
                    ,["TurnOn"] = __aux("к")
                    ,["TurnOff"] = __aux("от")
                  }
  ,withPut      = true
  ,withPutIn    = true
  ,withPutAway  = true
  ,withThrow    = true
  ,withTurnOn   = true
  ,withTurnOff  = true
  ,withFetch    = true
  ,withTakeFrom = true
}:like(pBasic)

techguy = item {
   _talk        = 0
  ,_help        = false
  ,_help2       = false
  ,nam          = _"инженер"
  ,Exam         = [[На нём тёмно-серый комбинезон с нашивками "Ахилла" на плечах и груди -- мятый и неопрятный. Кажется,
                    его обмундирование не было в стирке уже месяц, если не больше. Инженер целиком поглощен работой -- он
                    даже не замечает, в какой неудобной позе стоит. Редкие волосы у него на голове слиплись от пота.^
                    Надо будет всё-таки запомнить, как его зовут.]]
  ,Attack       = [[Странные мысли приходят мне в голову.]]
  ,Listen       = [[Инженер что-то бормочет себе под нос.]]
  ,Approach     = [[Я подхожу к инженеру почти вплотную, но он настолько погружён в свою работу, что даже не замечает меня.]]
  ,Talk         = choose_ {
                     ["default"] =
                        chain_ {
                          inc_("s._talk"),
                          [[-- Привет! -- говорю я.^
                            Инженер вздрагивает и поворачивается.^
                            -- А, здравствуй, -- отвечает он. -- Что, там, небось, уже все с ума сходят?^
                            -- Есть маленько. А что произошло-то?^
                            Инженер вздыхает и устало прикрывает глаза рукой.^
                            -- Последние карты не обработались, -- говорит он. -- Почему-то подвисла вся система. Не знаю,
                            возможно ошибка какая в последней оснастке. Сейчас пытаюсь разобраться.^
                            -- И много времени это займет?^
                            -- Ну... -- качает головой инженер. -- Я стараюсь.]]
                        }
                    ,["s._talk==1"] =
                        chain_ {
                          inc_("s._talk"),
                          [[-- Слушай, -- предлагаю я, -- может, нам просто перезагрузить всю систему? Так ты весь день можешь
                            копаться. Потом... будет время, разберёмся.^
                            -- Не, так не делают! -- отвечает инженер. -- Я даже пока не понял, в чём проблема.
                            То ли в маршруте какая неточность, то ли в самой системе... Такое ощущение, что она в мёртвый
                            цикл ушла.^
                            -- Ты ведь понимаешь, что если мы не решим эту проблему в ближайшее время, то нас просто
                            снимут с миссии? -- напоминаю я. -- И понимаешь, чем нам это грозит?^
                            Инженер ругается с таким видом, словно сплёвывает слова на пол, и отворачивается от терминала.^
                            -- Ну и? -- говорит он. -- Что ты предлагаешь?]]
                        }
                    ,["s._talk==2"] =
                        chain_ {
                          inc_("s._talk"),
                          set_("s._help"),
                          [[-- Делаем перезагрузку управляющей системы, заново загружаем карты, -- говорю я, стараясь, чтобы
                            мой голос звучал как можно увереннее. -- С этой версией оснастки другие корабли ведь как-то летают,
                            значит дело не в ней. А если карта повторно загрузится, значит и она тоже непричём.^
                            -- Эх, твоими бы устами... -- вздыхает инженер.^
                            -- Нет, есть и второй вариант, -- продолжаю я. -- Вместо того, чтобы копаться здесь самому втихомолку,
                            сообщаем в управление, что у нас проблема, они подключают команду инженеров. В общем, делаем всё
                            по протоколу.^
                            -- По протоколу! -- фыркает инженер. -- С каких это пор ты стал таким любителем протоколов?^
                            -- Ну, а как ты хочешь? -- отвечаю я. -- Я не против, конечно, обойти иногда бюрократию, но ждать
                            мы больше не можем. К тому же ты даже не говоришь, когда проблема будет решена.^
                            Инженер молчит и лишь покачивает головой.]]
                        }
                    ,["s._talk==3"] =
                        chain_ {
                          inc_("s._talk"),
                          set_("s._help"),
                          [[-- Ну, так что? -- спрашиваю я. -- Ты за это отвечаешь, поэтому решать тебе.^
                            -- Ладно, -- махает рукой инженер. -- Давай попробуем. В принципе, ты прав, конечно. Если загрузится,
                            то...^
                            -- Тебе как-нибудь помочь? -- говорю я.^
                            -- Да в принципе нет, хотя... Можешь перезагрузить терминал B2, а я пока здесь...^
                            -- Хорошо, сейчас.]]
                        }
                    ,["s._talk==4 and not techdeck_b2._reload"] =
                        [[-- Ну, как у тебя дела? -- спрашиваю я.^
                          -- Да вроде ничего, -- говорит инженер. -- Почти... почти закончил. Ещё пару минут. А сам ты как?^
                          -- Да, я тоже почти, -- отвечаю я.]]
                    ,["s._talk==4 and techdeck_b2._reload"] =
                        chain_ {
                          inc_("s._talk"),
                          [[-- Я всё, -- говорю я.^
                            -- Да-да, -- кивает инженер. -- Вижу, поднялась машинка. Как раз собираюсь начать загрузку.^
                            Он быстро набирает на клавиатуре коды загрузки и напряжённо смотрит в экран.^
                            -- Что ж, хорошо. Пока всё...^
                            Инженер внезапно взмахивает рукой и ругается сквозь зубы.^
                            -- Чёрт! Всё то же самое!^
                            -- Да, это совсем не здорово, -- говорю я. -- Ладно, сообщу в центральную. Видимо, сегодня мы и правда
                            никуда не полетим.^
                            -- Погоди! -- останавливает меня инженер. -- Давай ещё раз попробуем. Мало ли. Всего пару минут же.
                            Как считаешь?]]
                        }
                    ,["s._talk==5"] =
                        chain_ {
                          inc_("s._talk"),
                          set_("s._help2"),
                          [[-- Не знаю, -- говорю я. -- Раз она сейчас не поднялась, значит там действительно серьёзная проблема.^
                            -- Ну, не было бы проблемы, и я бы здесь не бился, -- говорит инженер. -- А что мы теряем?^
                            -- Я в общем не против, -- соглашаюсь я. -- Давай. Я тогда снова B2?^
                            -- Погоди, -- отвечает инженер. -- Я попробую вообще вывести его из контура.^
                            Он набирает что-то на клавиатуре.^
                            -- Вот так. На этот раз займись B3.^
                            -- Хорошо, договорились.]]
                        }
                    ,["s._talk==6 and not techdeck_b3._reload"] =
                        [[-- Не готов ещё? -- спрашивает инженер.^
                          -- Пока нет.^
                          -- Да, и я тут тоже...]]
                    ,["s._talk==6 and techdeck_b3._reload"] =
                        chain_ {
                          inc_("s._talk"),
                          set_("techdeck._done"),
                          [[-- Ну, чего... Попробуем ещё раз? -- предлагаю я.^
                            -- Да, -- отвечает инженер. -- Я уже начал.^
                            Он говорит, не глядя на меня. Руки его быстро скользят по клавиатуре. На мониторе терминала сменяются
                            загрузочные экраны.^
                            -- Держу пальцы на удачу! -- говорю я.^
                            -- Да-да, -- кивает головой инженер. -- Вроде... Вроде пошло. Смотри...^
                            Он задерживает дыхание, рука его замирает над клавиатурой.^
                            -- Всё! -- Инженер шумно выдыхает. -- Прошёл маршрут! Ноль ошибок, ноль предупреждений. Всё отлично!^
                            -- Ну, слава богу! А что было, непонятно?^
                            Инженер качает головой.^
                            -- Возможно, с В2 что-то. Я потом посмотрю. Ну, ладно, -- он оборачивается ко мне. -- У вас ведь там
                            каждая минута на счету. Можешь обрадовать своё начальство.^
                            -- Да, уже бегу, -- отвечаю я.]]
                        }
                    ,["s._talk==7"] =
                        [[-- Ты ещё здесь? -- удивляется инженер. -- Ты бы поспешил, а то мы и правда сильно опаздываем.]]
                  }
  ,Think        = [[Хотя мы летали вместе уже множество раз, я почти ничего о нём не знаю. Может, стоит завязать знакомство?
                    Выпить вместе пива после этого назначения? А с другой стороны -- какой смысл? На "Ахилле" есть множество
                    людей, которых я в лучшем случае знаю только по фамилии.]]
  ,articles     = {
                    ["Think"] = "об"
                  }
}:like(pHuman)

function keyboard_(str)
  return function(s,w)
    if (w == techdeck_b2 and techdeck_b2._keyboard) or
       (w == techdeck_b3 and techdeck_b3._keyboard) then
      return "Клавиатура уже подключена к этому терминалу.";
    elseif techdeck_b2._keyboard then
      return "Клавиатура уже подключена к терминалу B2.";
    elseif techdeck_b3._keyboard then
      return "Клавиатура уже подключена к терминалу B3.";
    else
      if type(str) == "function" then
        str = str();
      end
      return str;
    end
  end
end

keyboard = item {
   nam          = _"клавиатура"
  ,Exam         = [[Небольшая клавиатура с сенсорными кнопками -- когда она отключена, то похожа на тонкий и гибкий лист
                    металла. Пользоваться ей не очень удобно из-за того, что обратная связь у кнопок почти отсутствует, если не
                    считать слабой, похожей на тонкий электрический импульс вибрации, которая отдаётся в кончики пальцев,
                    когда касаешься светящихся кнопок. Впрочем, основное предназначение таких клавиатур -- подключение к
                    большим станционарным терминалам, у которых нет никаких встроенных органов управления.]]
  ,Throw        = use_ {
                     ["default"] = [[Не думаю, что это разумно.]]
                    ,["techguy"] = [[Вряд ли это заставит его работать быстрее.]]
                    ,["techdeck_terminal"] = [[Любопытный способ починки оборудования.]]
                    ,["techdeck_b2"] = [[Любопытный способ починки оборудования.]]
                    ,["techdeck_b3"] = [[Любопытный способ починки оборудования.]]
                    ,["techdeck_toolbox"] = redirect_("Put")
                  }
  ,Put          = use_ {
                     ["default"] = "Не стоит этого делать."
                    ,["techdeck_terminal"] = [[Зачем класть клавиатуру на терминал? Да и положить её тут негде.]]
                    ,["techdeck_b2"] = [[Зачем класть клавиатуру на терминал? Да и положить её тут негде.]]
                    ,["techdeck_b3"] = [[Зачем класть клавиатуру на терминал? Да и положить её тут негде.]]
                    ,["techdeck_toolbox"] =
                        chain_ {
                          drop_("keyboard"),
                          [[Я кладу клавиатуру обратно в ящик с инструментами.]]
                        }
                  }
  ,PutIn        = redirect_("Put")
  ,PutAway      = redirect_("Put")
  ,TurnOn       = use_ {
                     ["default"] = [[Это не имеет смысла.]]
                    ,["nil"] = redirect_("Activate")
                    ,["techdeck_toolbox"] = [[Да, я и правда сегодня не в себе.]]
                    ,["techdeck_walls"] = [[Не думаю, что я смогу проделать нечто подобное.]]
                    ,["techdeck_lamps"] = [[Думаю, свет здесь управляется как-то по-другому.]]
                    ,["techdeck_terminal"] =
                        keyboard_
                        [[Я не смогу подключить клавиатуру сразу ко всем терминалам. К тому же техник попросил помочь ему
                          с вполне конкретной машиной.]]
                    ,["techdeck_b2"] =
                        keyboard_(
                        chain_ {
                          set_("techdeck_b2._keyboard"),
                          [[Я нажимаю на кнопку на терминале В2, затем на небольшую продолговатую кнопку с тыльной стороны
                            клавиатуры. Через секунду на матовой металлической поверхности клавиатуры загораются изображения
                            клавиш. Клавиатура подключена, теперь я могу управлять терминалом.]]
                        })
                    ,["techdeck_b3"] =
                        keyboard_(
                        chain_ {
                          set_("techdeck_b3._keyboard"),
                          [[Я нажимаю на кнопку на терминале В3 и на клавиатуре. На матовой металлической поверхности клавиатуры
                            загораются изображения клавиш. Клавиатура подключена, теперь я могу управлять терминалом.]]
                        })
                  }
  ,TurnOff      = use_ {
                     ["default"] = [[От волнения у меня совсем крыша поехала.]]
                    ,["techdeck_terminal"] = 
                        choose_ {
                           ["default"] = [[Нужно отсоединить клавиатуру от того терминала, к которому она сейчас подключена.]]
                          ,["not techdeck_b2._keyboard and not techdeck_b3._keyboard"] =
                              [[Клавиатура сейчас не подключена ни к какому терминалу.]]
                        }
                    ,["techdeck_b2"] =
                        choose_ {
                           ["default"] = [[Клавиатура не подключена к этому терминалу.]]
                          ,["techdeck_b2._keyboard"] =
                              chain_ {
                                unset_("techdeck_b2._keyboard"),
                                [[Я нажимаю на кнопку на терминале, затем -- на самой клавиатуре, и через мгновение на экране
                                  терминала выводится сообщение, что к нему не подключены органы управления.]]
                              }
                        }
                    ,["techdeck_b3"] =
                        choose_ {
                           ["default"] = [[Клавиатура не подключена к этому терминалу.]]
                          ,["techdeck_b3._keyboard"] =
                              chain_ {
                                unset_("techdeck_b3._keyboard"),
                                [[Я нажимаю на кнопку на терминалу, затем -- на самой клавиатуре, и через мгновение на экране
                                  терминала выводится сообщение, что к нему не подключены органы управления.]]
                              }
                        }
                    ,["techdeck_lamps"] = [[Вроде никакие клавиатуры к лампам не подключены. О чём это я?]]
                  }
  ,Activate     = [[Клавиатура активируется автоматически при подключении к терминалу.]]
  ,Open         = [[У меня сейчас нет ни времени, ни желания разбирать клавиатуру.]]
  ,Wreck        = [[Я как-то не очень люблю ломать полезные вещи.]]
  ,Close        = [[Не понимаю, как это?]]
  ,Fetch        = use_ {
                     ["default"] = [[Не представляю, как это сделать.]]
                    ,["techguy"] =
                        [[-- Вот возьми, -- говорю я инженеру и протягиваю ему клавиатуру. -- Я брал у тебя в инструментах.^
                          -- А... Да кинь её туда же, в ящик.]]
                    ,["techdeck_toolbox"] = redirect_("Put")
                  }
  ,Give         = redirect_("Fetch")
}:like(pItem)

hidden_keyboard = item {
   nam          = _"клавиатура"
  ,Exam         = redirect_("Exam", "keyboard")
  ,Take         = choose_ {
                     ["default"] = [[Мне пока что не нужна клавиатура.]]
                    ,["have(keyboard)"] = "Клавиатура у меня."
                    ,["techguy._help and not have(keyboard)"] = 
                        chain_ {
                          take_("keyboard"),
                          [[Я достаю из ящика с инструментами сенсорную клавиатуру.]]
                        }
                  }
  ,TakeFrom     = use_ {
                     ["default"] = [[Не представляю, как это.]]
                    ,["nil"] = redirect_("Take")
                    ,["techdeck_toolbox"] = redirect_("Take")
                  }
  ,cnd          = if_("techdeck_toolbox._exam and not have(keyboard)")
}:like(pBasic)

techdeck_goto_coridor = item {
   nam          = _"коридор"
  ,Exit         = choose_ {
                     ["default"] = walk_("coridor")
                    ,["have(keyboard)"] = [[Думаю, не стоит забирать с собой клавиатуру. Лучше вернуть её инженеру.]]
                  }
}:like(pLocation)


---------------------------------------------------------------------------------------------------
--Cubrick
---------------------------------------------------------------------------------------------------
cubrick = scene {
   obj          = {
                     "cubrick_itself"
                    ,"cubrick_walls"
                    ,"cubrick_doors"
                    ,"cubrick_tablo"
                    ,"cubrick_chair"
                    ,"cubrick_lydia"
                    ,"cubrick_goto_coridor"
                    ,"cmn_ceil"
                    ,"cmn_floor"
                    ,"ahill"
                  }
  ,enter        = unlock_("cubrick")
  ,TurnAround   = [[Странно, но в кубрике, кроме меня, никого нет.]]
  ,Wait         = [[И чего мне ждать?]]
  ,Exit         = redirect_("Walk", "cubrick_goto_coridor")
  ,Return       = redirect_("Walk", "cubrick_goto_coridor")
}

cubrick_itself = item {
   nam          = "кубрик"
  ,dsc          = [[Кубрик представляет собой широкое прямоугольное помещение с таким же ярким и безжизненным освещением,
                    как в коридоре. На стене у выхода висит небольшое информационное табло, на котором застыло мутное
                    красноватое изображение, как будто систему заклинило и, вместо того, чтобы крутить бесконечный поток
                    дежурных инструкций, сводок и объявлений, она упрямо показывает вид на какое-то красноватое газовое
                    облако. Прямо под информационным табло стоит маленький колченогий стул -- точно рабочее место
                    несуществующего консьержа. Справа и слева от меня виднеются одинаковые металлические двери с порядковыми
                    номерами. Здесь есть и моя каюта, хотя частенько во время полета я даже не успеваю в неё заглянуть.^
                    Не знаю, зачем я пришёл сюда. Это далеко не первый мой вылет, но я чувствую неприятное
                    волнение, как новичок, которого назначили на слишком ответственную для него должность. У меня есть
                    дела, мне нельзя терять время. Но я почему-то думаю о Лиде. Она где-то здесь, в одной из этих кают.]]
  ,Exam         = redirect_("dsc")
  ,Walk         = [[Я прохаживаюсь по кубрику, не отходя далеко от выхода в коридор.]]
}:like(pRoom)

cubrick_lydia = item {
   nam          = _"Лида"
  ,Think        = [[Нам редко приходится летать вместе. Лида -- инженер связи, но сейчас она не приписана ни к одному
                    из кораблей, поэтому её часто переводят. Это всего лишь наша вторая совместная миссия. Быть может,
                    именно поэтому я так волнуюсь?]]
  ,Recall       = redirect_("Think")
  ,articles     = {
                     ["Think"] = "о"
                    ,["Recall"] = "о"
                  }
}

cubrick_walls = item {
   nam          = _"стены"
  ,Exam         = [[Стены в кубрике из того же плотного белого материала, что и в коридоре. Рассматривать здесь, честно
                    говоря, нечего.]]
  ,Approach     = [[Я касаюсь рукой ближайшей стены и чувствую, как телу моему передается слабая, едва ощутимая судорога
                    корабля -- звуковой резонанс двигателей, вибрация системы генерации воздуха. Мне начинает казаться,
                    что с кораблём что-то не в порядке, что его дыхание сегодня как-то сбилось с ритма.]]
  ,Move         = [[Кажется, я сегодня не в себе.]]
  ,Wreck        = redirect_("Move")
  ,Open         = redirect_("Move")
}:like(pWall)

cubrick_doors = item {
   nam          = _"каюты"
  ,Exam         = redirect_("Approach")
  ,Approach     = [[Сейчас на это нет времени, я ещё успею увидеться с Лидой. Нам нужно как можно скорее войти в туннель,
                    мы и так выбились из графика.]]
  ,Open         = redirect_("Approach")
  ,Move         = redirect_("Approach")
  ,Wreck        = redirect_("Move", "cubrick_walls")
  ,Crack        = redirect_("Move", "cubrick_walls")
}:like(pBuild)

cubrick_tablo = item {
   nam          = _"табло"
  ,Exam         = [[Я уже где-то видел это изображение раньше -- странная и пугающая туманность цвета венозной крови, какую, скорее, увидишь в
                    дешёвом кино, чем из иллюминатора космического корабля, и плоская геометрическая фигура, чёрный квадрат, похожий на идеальную
                    по форме червоточину в пространстве. Туннель Квадровского...]]
  ,Walk         = redirect_("Exam")
  ,TurnOn       = [[Табло и так работает.]]
  ,TurnOff      = [[Выключателя здесь нет. Да и зачем мне выключать его?]]
  ,Open         = [[Это просто информационное табло, никаких органов управления здесь нет.]]
  ,Move         = [[И почему мне сегодня хочется всё передвинуть?]]
  ,Wreck        = redirect_("Move", "cubrick_walls")
  ,Take         = redirect_("Move", "cubrick_walls")
}:like(pDevice)

cubrick_chair = item {
   nam          = _"стул"
  ,Exam         = [[Стул как стул, здесь решительно нечего разглядывать. Таких на "Ахилле" десятки -- в кубрике, в кампусе,
                    в жилых отсеках.]]
  ,Move         = [[Не вижу смысла передвигать этот стул.]]
  ,Take         = [[Таскать с собой стул? Сложно представить, зачем это может потребоваться.]]
  ,Sit          = [[Я ненадолго присаживаюсь на стул, хотя и сам не понимаю, чего жду.]]
  ,Wreck        = redirect_("Move", "cubrick_walls")
}:like(pChair)

cubrick_goto_coridor = item {
   nam          = _"коридор"
  ,Exit         = walk_("coridor")
}:like(pLocation)


---------------------------------------------------------------------------------------------------
--Dream8Next
---------------------------------------------------------------------------------------------------
dream8nextstart = pause {
   enter        = music_("brass")
  ,pic          = "white"
  ,time         = 1500
  ,fading       = 80
  ,next         = chain_ {
                    light_(true),
                    walkfast2_("dream8next")
                  }
}

dream8next = scene {
   enter        = music_("bam")
  ,obj          = {
                     "dream8next_start"
                    ,"dream8next_voices"
                    ,"dream8next_red"
                  }
  ,Refresh      = [[Меня окружает бесцветная пустота.]]
  ,Wait         = [[Я не могу ждать. Здесь нет времени.]]
  ,Exit         = [[Выхода отсюда нет.]]
  ,Return       = [[Я не знаю, куда можно вернуться, существует ли ещё окружающий мир.]]
  ,ExamSelf     = [[Меня как будто нет, я растворён в этой пустоте.]]
}

dream8next_start = rooms.event
  [[Свет.^
    Вокруг меня нет ничего, кроме света. Я провалился в бесконечную пропасть выжигающего глаза света, я падаю в пронзительную
    бесцветную пустоту, где нет ничего -- ни голосов, ни образов, ни звуков.^
    Всё моё тело превратилось в один сплошной, сведённый судорогой нерв. Боль нарастает, скручивает меня изнутри, я больше не
    могу ей сопротивляться.^
    Вдруг вдалеке вспыхивает красный огонёк.]]

dream8next_voices = item {
   nam          = _"голоса"
  ,Listen       = [[Здесь нет никаких голосов. Этот мир нем.]]
}:like(pBasic)

dream8next_red = item {
   _walk        = 0
  ,nam          = _"красное свечение"
  ,Exam         = [[Я не знаю, что это, но красное пламя впереди растет, пульсирует, как живое сердце.]]
  ,Walk         = choose_ {
                     ["default"] =
                        chain_ {
                          inc_("s._walk"),
                          [[Я устремляюсь к этому красному свету, ведь он -- единственное, что ещё существует в этой оголённой
                            безжизненной пустоте. Однако пульсирующий вдали огонёк не спешит приближаться.]]
                        }
                    ,["s._walk==1"] =
                        chain_ {
                          inc_("s._walk"),
                          [[Мне кажется, проходит целая вечность. Красный огонь уже близко, и иногда он вспыхивает так ярко,
                            что всё вокруг на мгновение озаряется его светом. Меня начинает пугать это сильное жестокое солнце,
                            которое так резко вторглось в мой пустой, наполненный болью мир. Однако уже поздно отступать назад.]]
                        }
                    ,["s._walk==2"] = walkfast2_("maindeck2_trans")
                  }
  ,articles     = {
                    ["Walk"] = "к"
                  }
}:like(pPhenom)


---------------------------------------------------------------------------------------------------
--Maindeck2
---------------------------------------------------------------------------------------------------
maindeck2_trans = pause {
   enter        = sound_("fear")
  ,pic          = "redlight"
  ,time         = 500
  ,next         = walk_("maindeck2_trans2")
}

maindeck2_trans2 = pause {
   time         = 1000
  ,next         = walk_("maindeck2_trans3")
}

maindeck2_trans3 = pause {
   time         = 500
  ,next         = chain_ {
                    music_("stabat"),
                    light_(false),
                    walk_("maindeck2")
                  }
}

maindeck2 = scene {
   _event       = false
  ,_sick        = false
  ,obj          = {
                     "maindeck2_start"
                    ,"maindeck2_start2"
                    ,"maindeck2_itself"
                    ,"maindeck2_terminal"
                    ,"navigator2"
                    ,"crewgirl"
                    ,"crew"
                    ,"pilot2"
                    ,"maindeck2_goto_coridor"
                    ,"maindeck2_map"
                    ,"cmn_ceil"
                    ,"cmn_floor"
                  }
  ,Wait         = [[Чего я должен ждать?]]
  ,Return       = redirect_("Plug", "maindeck2_terminal")
  ,Exit         = redirect_("Walk", "maindeck2_goto_coridor")
}

function eventrush_(str)
  return function(s)
    if maindeck2._event then
      return "Сейчас не до этого! Нельзя терять ни секунды!";
    else
      if type(str) == "function" then
        str = str(s);
      elseif type(str) == "table" then
        str = chain_(str)(s);
      end
      return str;
    end
  end
end

maindeck2_start = rooms.event
  [[Меня словно бьёт током, резкий свет слепит глаза, и я вываливаюсь из кресла. Первые секунды я ничего не
    могу разглядеть -- всё вокруг сливается в белесое марево. Кто-то помогает мне подняться, но я едва стою на ногах,
    и мне приходится опираться на чьё-то плечо. Мне кажется, что пол подо мной шатается.^
    -- Ну, ты как? -- раздаётся знакомый голос. -- Мы уж решили, что ты всё... Не можешь выйти.^
    Я не сразу понимаю, что это первый пилот.]]

maindeck2_start2 = rooms.event {
   dsc          = concat_ {
                    [[Я уже подхожу к двери в коридор, как вдруг под потолком вновь вспыхивает сирена,
                      и всё вокруг заливает красным светом. Стены на основной палубе тут же застилает белая мгла,
                      в которой вспыхивают огромные, с человеческий рост буквы:^
                      ОПАСНОСТЬ! ПРОТОКОЛ ЭДПН-22!^
                      Главный пилот бросается к одному из терминалов и через секунду отшатывается от него
                      с бледным бескровным лицом.]],
                    if_("have(glass)", 
                        chain_ {
                          drop_("glass"),
                          [[От неожиданности я роняю стакан, который до сих пор сжимал в руках, и тот с грохотом
                            укатывается в коридор.^]]
                        }),
                    if_("not have(glass)", "^")
                  }
  ,cnd          = if_("maindeck2._event")
}

maindeck2_itself = item {
   nam          = _"главная палуба"
  ,dsc          = choose_ {
                     ["default"] =
                        [[Можно подумать, что ничего не произошло. Все спокойно сидят на своих рабочих местах.
                          Экраны на стенах заливает глубокая космическая темнота. Как будто и не было никакого
                          аварийного выхода из нейроинтерфейса.]]
                    ,["pilot2._talk>1 and not maindeck2._event"] =
                        [[Стены с жидкокристаллическим покрытием по-прежнему транслируют глухую космическую
                          темноту -- должно быть, мы где-то между солнечными системами, в огромной бессветной
                          бездне. Навигатор что-то торопливо набирает на клавиатуре терминала, периодически
                          оборачиваясь на первого пилота, который стоит рядом с отключённой
                          голографической картой и говорит о чём-то с девушкой-оператором, чьё имя я никак не
                          могу вспомнить.]]
                    ,["maindeck2._event"] =
                        [[Под потолком ревёт сирена, а от аварийных вспышек всё перед глазами застилает кровавая
                          пелена. Сейчас дорога каждая секунда.]]
                  }
  ,Walk         = [[Мне сейчас не до этого.]]
  ,Exam         = redirect_("dsc")
}:like(pRoom)

maindeck2_terminal = item {
   nam          = name_ {
                     ["default"] = _"терминал нейроинтерфейса"
                    ,["Sit"] = _"терминал нейроинтерфейса"
                    ,["Lie"] = _"терминал нейроинтерфейса"
                  }
  ,Exam         = choose_ {
                     ["default"] = 
                        [[Нейролинк меня чуть не угробил. Я чувствую неприятный холодок в груди, когда смотрю на эту машину.]]
                    ,["maindeck2._event"] =
                        [[Меня бьёт озноб от страха, когда я смотрю на эту машину, но мне придётся подключиться к ней снова.
                          Выхода нет.]]
                  }
  ,Plug         = choose_ {
                     ["default"] = [[Нет, подключаться сейчас к нейросети бессмысленно. Да и просто опасно.]]
                    ,["maindeck2._event and not pilot2._done"] = 
                        [[Лучше сначала поговорить с первым пилотом. Возможно, нет необходимости вновь подключаться к
                          нейроинтерфейсу.]]
                    ,["maindeck2._event and pilot2._done"] =
                        chain_ {
                          hideinput,
                          mute_(0,0),
                          walk_("cell13start")
                        }
                  }
  ,TurnOn       = redirect_("Plug")
  ,Activate     = redirect_("Plug")
  ,Open         = redirect_("Plug")
  ,Sit          = redirect_("Plug")
  ,Lie          = redirect_("Lie", "maindeck_terminal")
  ,Approach     = redirect_("Exam")
  ,Wreck        = [[Это безумие.]]
  ,Crack        = redirect_("Wreck")
  ,Ascend       = redirect_("Wreck")
  ,Move         = [[Терминал не передвигается.]]
  ,withPut      = true
  ,withPutIn    = true
  ,withPutAway  = true
  ,withThrow    = true
  ,articles     = {
                     ["Throw"] = "на"
                    ,["Put"] = "на"
                    ,["PutIn"] = "на"
                    ,["PutAway"] = "на"
                    ,["Sit"] = "за"
                    ,["Plug"] = "к"
                  }
}:like(pDevice)

navigator2 = item {
   _talk        = 0
  ,nam          = _"навигатор"
  ,Exam         = eventrush_ [[Кажется, он всерьёз обеспокоен моим состоянием.]]
  ,Talk         = choose_ {
                     ["default"] = 
                        choose_ {
                           ["default"] =
                              eventrush_(chain_ {
                                inc_("s._talk"),
                                [[-- Отошёл немного? -- спрашивает навигатор. -- Испугал ты нас, конечно...^
                                  -- Честно говоря, я и сам не очень понял, что произошло-то... -- отвечаю я. --
                                  Я как будто... потерялся.^
                                  -- Не мог выйти, -- отвечает навигатор. -- Никак. Я уже такое раньше видел.
                                  Во время аварии на "Аресе" один из операторов так и не смог отключиться. Повис.
                                  В итоге систему пришлось перезагружать, оператор с тех пор -- овощь.^
                                  -- Да ладно, -- говорю я. -- Ни разу не слышал подобном.^
                                  -- Ну, о подобном никто и не распространяется, -- усмехается навигатор.]]
                              })
                          ,["s._talk==1"] =
                              eventrush_
                              [[-- Ты как? -- спрашивает навигатор.^
                                -- Да нормально всё. Прихожу в себя помаленьку.]]
                        }
                    ,["maindeck2._sick"] = [[Только я пытаюсь что-то сказать, как меня тут же раздирает кашель.]]
                  }
  ,Listen       = redirect_("Talk")
  ,Attack       = [[Мне сейчас не до шуток.]]
  ,Approach     = redirect_("Talk")
  ,Think        = redirect_("Think", "navigatorguy")
}:like(pHuman)

crewgirl = item {
   _talk        = 0
  ,nam          = _"девушка"
  ,Exam         = eventrush_
                  [[На вид ей лет двадцать пять, невысокого роста. Нет, мы точно уже летали раньше! Так почему я никак
                    не могу вспомнить её имя? Что со мной творится последнее время?]]
  ,Talk         = choose_ {
                     ["default"] =
                        choose_ {
                           ["default"] =
                              eventrush_
                              [[Только я пытаюсь что-то сказать, как меня тут же раздирает кашель.]]
                          ,["s._talk==0 and not maindeck2._sick"] =
                              eventrush_ {
                                inc_("s._talk"),
                                [[-- А с вами уже такое бывало раньше? -- обеспокоенно спрашивает девушка. -- Я впервые вижу,
                                  чтобы у кого-то были такие проблемы с выходом из нейросети.^
                                  -- Нет, раньше не было, -- отвечаю я. -- Даже не знаю, что со мной. Я как будто... просто не мог выйти.^
                                  -- Странно, -- качает головой девушка. -- Сходите к врачу, когда мы вернёмся.]]
                              }
                          ,["s._talk==1 and not maindeck2._sick"] =
                              eventrush_
                              [[-- Не забудьте сходить к врачу, когда вернёмся на Землю, -- напоминает мне девушка.]]
                        }
                    ,["pilot2._talk==2 and maindeck2._sick and not have(glass)"] = redirect_("Talk", "pilot2")
                  }
  ,Listen       = redirect_("Talk")
  ,Attack       = [[Не надо сходить с ума.]]
  ,Approach     = redirect_("Talk")
  ,Think        = [[Я должен знать эту девушку, мы раньше уже летали, но сейчас я никак не могу её вспомнить -- ни имени, ничего.]]
  ,cnd          = if_("pilot2._talk>0")
}:like(pHuman)

crew = item {
   nam          = _"экипаж"
  ,Exam         = eventrush_
                  [[Кажется, я -- единственный, на кого так повлиял аварийный выход из нейросети. Надо будет по возвращению
                    обратиться к врачу.]]
  ,Talk         = eventrush_ [[Думаю, им есть чем заняться и без моих разговоров.]]
  ,Approach     = eventrush_ [[Лучше им не мешать.]]
  ,Listen       = redirect_("Talk")
  ,Attack       = [[Кажется, я и правда не в себе.]]
}:like(pHuman)

pilot2 = item {
   _status      = false
  ,_done        = false
  ,_talk        = 0
  ,nam          = _"первый пилот"
  ,Exam         = choose_ {
                     ["default"] =
                        eventrush_
                        [[Несмотря на всё, пилот выглядит спокойным и собранным,
                          как будто мы на каком-нибудь учении, и всё происходящее -- лишь нарочитая симуляция,
                          которую он отыгрывал уже множество раз.]]
                    ,["maindeck2._event"] =
                        eventrush_
                        [[Кажется, его самообладанию тоже есть предел. Руки у пилота дрожат, а лицо бледное, как у
                          смертельно больного.]]
                  }
  ,Talk         = choose_ {
                     ["default"] =
                        chain_ {
                          inc_("s._talk"),
                          [[-- Что произошло? -- хрипло спрашиваю я. -- Нас как будто качает.^
                            -- Перегрузка сети была при выходе, -- отвечает пилот. -- На двух основных контурах. В итоге на
                            гравитаторах мозги съехали, так что нас тут поштормило немного. Но вроде должны сейчас починить...
                            -- Да это ладно, ерунда! -- перебивает его навигатор. -- Мы промахнулись мимо точки выхода!^
                            -- Как так? -- не понимаю я.^
                            -- Сами пока ещё не разобрались, -- отвечает пилот. -- Судя по всему, какая-то ошибка в маршруте.
                            Нас выбросило на десяток парсеков дальше, чем нужно. И мы на территории девятых... Чёрт!^
                            -- В маршруте не может быть ошибки! -- вмешивается навигатор. -- Он проверялся сотни раз, по этому
                            маршруту уже сколько летали! Он просто корректировался и... -- Навигатор вздыхает. -- Скорее всего,
                            это в оборудовании, или...^
                            -- Да что может быть с оборудованием? -- спрашивает невысокая девушка.^
                            Кажется, она оператор, и это уже не первая наша совместная миссия, однако я почему-то никак не могу
                            вспомнить её имя. Что со мной сегодня?^
                            -- Я же смотрела сейчас. Никаких признаков, ничего...^
                            -- Но с маршрутом тоже... -- снова начинает навигатор. -- И ведь была перегрузка на контуре...^
                            -- Ладно! -- говорит первый пилот и поднимает руку. -- Потом будем разбираться. Сейчас нам нужно
                            поскорее убраться отсюда.]]
                        }
                    ,["s._talk==1"] =
                        chain_ {
                          inc_("s._talk"),
                          set_("maindeck2._sick"),
                          [[-- Мне как-нибудь помочь? -- спрашиваю я.^
                            -- Да нет, -- качает головой пилот. -- Ты отдохни, приди в себя. Я в первый раз вижу, чтобы люди
                            так реагировали на аварийный выход из сети.^
                            -- Да, -- вздыхаю я. -- Мне этот нейролинк чуть мозги не поджарил.^
                            -- Ладно, я тогда пойду задавать маршрут, -- говорит навигатор и направляется к ближайшему терминалу.^
                            Я пытаюсь ещё что-то сказать, но вместе этого захожусь сильным, раздирающим лёгкие кашлем.]]
                        }
                    ,["s._talk==2 and maindeck2._sick and not have(glass)"] =
                        chain_ {
                          take_("glass"),
                          [[Приступ кашля не проходит, я чувствую себя так, словно сейчас начну отхаркивать собственные
                            лёгкие. Девушка-оператор куда-то отбегает и вскоре возвращается со стаканом воды:^
                            -- Вот возьмите, -- говорит она. -- Там илютал, это должно помочь.^
                            Я беру протянутый мне стакан и благодарно киваю головой.]]
                        }
                    ,["s._talk==2 and maindeck2._sick and have(glass)"] =
                        [[Из-за этого кашля я не могу произнести ни слова.]]
                    ,["s._talk==2 and not maindeck2._sick"] =
                        chain_ {
                          inc_("s._talk"),
                          set_("s._status"),
                          [[-- Так что, моя помощь не требуется? -- спрашиваю я.^
                            -- Ну, пока нет, -- отвечает первый пилот. -- Отдохни.^
                            -- Хорошо, -- говорю я. -- Тогда я схожу в кубрик.^
                            -- Ладно. Но не задерживайся.]]
                        }
                    ,["s._talk==3 and not maindeck2._event"] =
                        [[-- Ты ещё не ушел? -- спрашивает пилот. -- Ты вроде собирался в кубрик.]]
                    ,["s._talk==3 and maindeck2._event"] =
                        chain_ {
                          inc_("s._talk"),
                          set_("pilot2._done"),
                          [[-- Что случилось?^
                            Я подлетаю к пилоту, но тот, не глядя на меня, бросается к креслу терминала с нейроинтерфейсом.^
                            -- Нет времени! -- кричит он. -- Корабль девятых. Только что вышел из туннеля. И мы зарегистрировали от
                            них радиационный фон! Подключайся!^
                            Других объяснений не требуется.]]
                        }
                    ,["s._talk==4"] = [[Нет времени разговаривать. Кто знает, быть может, у нас осталось лишь несколько мгновений.]]
                  }
  ,Approach     = redirect_("Talk")
  ,Attack       = [[Да уж, это точно разрядит обстановку.]]
  ,Think        = eventrush_ [[Интересно, попадал ли он хоть раз в подобные ситуации? Всё же он летает куда дольше меня.]]
}:like(pHuman)

maindeck2_goto_coridor = item {
   nam          = _"коридор"
  ,Exit         = choose_ {
                     ["default"] = [[Нет, сначала нужно понять, что произошло.]]
                    ,["maindeck2._sick"] = [[Я должен сделать что-то с этим кашлем.]]
                    ,["pilot2._status and not maindeck2._event"] =
                        chain_ {
                          set_("maindeck2._event"),
                          walkfast2_("maindeck2_errortrans")
                        }
                    ,["maindeck2._event"] =
                        [[На это нет времени! Нас в любую секунду могут атаковать!]]
                  }
}:like(pLocation)

maindeck2_map = item {
   nam          = _"карта"
  ,Exam         = eventrush_ [[Голографическая карта откючена и похожа сейчас на большой кубический стул, предмет мебели.]]
  ,Approach     = eventrush_ [[Сейчас мне не нужна голографическая карта.]]
  ,TurnOff      = eventrush_ [[Карта и так не работает.]]
  ,Open         = redirect_("Approach")
  ,Close        = [[Мне сейчас не до этого.]]
  ,TurnOn       = redirect_("Approach")
  ,Wreck        = [[Это безумие.]]
  ,Move         = [[Боюсь, передвинуть её не получится.]]
  ,Ascend       = redirect_("Wreck")
  ,Crack        = redirect_("Wreck")
  ,withPut      = true
  ,withPutIn    = true
  ,withPutAway  = true
  ,withThrow    = true
  ,articles     = {
                     ["Throw"] = "на"
                    ,["Put"] = "на"
                    ,["PutIn"] = "на"
                    ,["PutAway"] = "на"
                  }
}:like(pBuild)

function drinked_(str)
  return function(s)
    if glass._water then
      return "Я бы предпочел для начала сделать несколько глотков, мне бы и правда не помешало промочить горло.";
    else
      if type(str) == "function" then
        str = str(s);
      elseif type(str) == "table" then
        str = chain_(str)(s);
      end
      return str;
    end
  end
end

glass = item {
   _water       = true
  ,nam          = name_ {
                     ["default"] =
                        choose_ {
                           ["default"] = _"пустой стакан"
                          ,["s._water"] = _"стакан с водой"
                        }
                    ,["Drink"] = _"вода из стакана"
                  }
  ,Exam         = choose_ {
                     ["default"] = [[Пустой металлический стакан, ничего интересного.]]
                    ,["s._water"] = [[Складной металлический стакан с холодной водой.]]
                  }
  ,Drink        = choose_ {
                     ["default"] = [[Стакан уже пуст, да и пить мне больше не хочется.]]
                    ,["s._water"] =
                        chain_ {
                          unset_("s._water"),
                          unset_("maindeck2._sick"),
                          [[Я осушаю стакан несколькими жадными глотками. Першение в горле проходит.
                            Теперь я по крайней мере могу не опасаться очередного приступа кашля.]]
                        }
                  }
  ,Put          = use_ {
                     ["default"] = [[Это не очень хорошая идея.]]
                    ,["maindeck2_map"] =
                        drinked_ {
                          dropself,
                          [[Я ставлю пустой стакан на отключённую голографическую карту.]]
                        }
                    ,["maindeck2_terminal"] =
                        drinked_ {
                          dropself,
                          [[Я ставлю стакан рядом с терминалом нейроинтерфейса.]]
                        }
                    ,["cmn_floor"] =
                        drinked_ {
                          dropself,
                          [[Я несколько секунд кручу в руках пустой стакан, не зная, что с ним делать, и, наконец,
                            ставлю его на пол, себе под ноги.]]
                        }
                  }
  ,Fetch        = use_ {
                     ["default"] = [[Вряд ли это сработает.]]
                    ,["pilot2"] =
                        drinked_ 
                        [[Я протягиваю первому пилоту пустой стакан.^
                          -- Поставь куда-нибудь, -- отвечает он, не глядя.]]
                    ,["crewgirl"] =
                        drinked_ 
                        [[Я пытаюсь отдать стакан девушке.^
                          -- Да поставьте где-нибудь, -- говорит она.]]
                    ,["navigator2"] =
                        drinked_ 
                        [[Я протягиваю пустой стакан навигатору, тот смотрит на меня с удивлением, не понимая,
                          чего я от него хочу.]]
                    ,["crew"] = [[Вряд ли им нужен этот стакан.]]
                  }
  ,Give         = redirect_("Fetch")
  ,Throw        = use_ {
                     ["default"] = [[Мне кажется, я могу себе придумать занятие поинтереснее.]]
                    ,["maindeck2_map"] = redirect_("Put")
                    ,["cmn_floo2"] = redirect_("Put")
                  }
  ,Wreck        = [[Не вижу смысла ломать стакан.]]
  ,Move         = [[Я беру стакан другой рукой.]]
}:like(pItem)

maindeck2_errortrans = pause {
   enter        = sound_("error")
  ,pic          = "redlight"
  ,time         = 500
  ,next         = chain_ {
                    music_("droplet2", 2),
                    walk_("maindeck2")
                  }
}